As usage of mobile electronic devices such as electronic devices considerably increased throughout the world during the last decades, the electronic device advanced from an ordinary mobile phone intended only for voice communications and Short Message Service (SMS) message exchange to a compact powerful computing device and thus provides basic communication capabilities and various extendable Internet-based functionalities. In particular, hardware of a current smartphone includes a powerful processor or central processing unit (CPU) including multiple processors or CPU cores, and a multi-level memory system including large storage capacity.
An operating system (OS) is installed on a recent electronic device, and most application programs, that is, applications or apps are installed through the Internet and run under the OS of the electronic device to provide various functions to a user. The mobile OSes most commonly used in the smartphone include android and iPhone OS (iOS), and mobile apps are generally developed in each version operable on each OS.
As the electronic device grows as a compact computing device, a multi-threading technology previously implemented in a computer is applied to the electronic device. The multi-threading technology is designed to improve performance by splitting execution of an application program into a plurality of execution threads and executing the threads of the application program in parallel on multiple CPUs or CPU cores. The multi-threading technology is especially advantageous for computationally intensive applications. To support the computationally intensive applications, the mobile OS of a recent electronic device is presently designed to support the multi-threading and thus supports smooth execution of the computationally intensive applications as various action games and multimedia apps.
Meanwhile, growth of computational power of the electronic device is subject to an efficient power management issue. A recent smartphone with a battery fully charged cannot last half a day, which causes inconvenience for the user. In this regard, the mobile OS of the recent electronic device disables the individual CPU cores in some cases to thus reduce power consumption and, if necessary, sequentially enables the individual CPU cores.
Another issue is security. The recent electronic device can update or extend applications and the mobile OS. Hence, when updating or extending the OS or the app over the Internet, malicious software such as malicious code, which can compromise the OS up to a kernel level, can be downloaded. As a result, data security is significantly undermined.
Trustzone technology which is well-known in a processor architecture design provides two independent environments of a secure environment (‘secure world’) and a non-secure environment (‘non-secure world’) which are isolated from each other in terms of resources and hardware of the electronic device. To implement the two independent environments, a secure OS operates in the secure environment and a rich OS operates in the non-secure environment. Each CPU or CPU core is configured to operate either in a secure mode or in a non-secure mode. When one CPU core switches to the secure mode, the secure OS acquires control at the corresponding CPU core and can use resources of the electronic device, which are intended to be available in the secure environment. When another CPU core is in the non-secure mode, the rich OS acquires control at the corresponding CPU core and can use resources which are intended to be available in the non-secure environment.
Typical examples of the rich OS include android and tizen. The rich OS is a full-functional OS which the user directly interacts with, regardless of general OS interfaces or utilities or regardless of application programs executed thereunder. General operational aspects of the rich OS are well known, and the rich OS implements most drivers including drivers which directly manipulate hardware means of the electronic device, and particularly enables or disables the CPU core.
Unlike the rich OS, the secure OS has a rather small and very limited functionality, is less error-prone as possible, is responsible for only executing tasks which are actually sensitive in view of security, and drives only application programs executed in the secure OS, for example, trusted application programs. Owing to the limited functionality of the secure OS, the secure OS cannot directly allocate computational resources for executing secure OS threads. The secure OS uses a resource allocated according to a communication process of the rich OS through the rich OS. Accordingly, the secure OS cannot obtain necessary CPU cores allocated to the secure OS threads. Moreover, the secure OS can neither enable an idle CPU core nor request the rich OS to enable the idle CPU core, in order to optimize the secure OS operation.
As a result, even when the secure OS carries out execution which is parallelized, single-core parallelization which processes in only one CPU core can occur. The execution performance under the secure OS was not of great concern in the art. However, as the computational intensive secure application programs increase, they raise the performance issue not only in the secure OS but also in the entire electronic device.